﻿using System.Collections.Generic;
using EPiServer.Core;
using EPiServer.DataAccess;
using EPiServer.Security;

namespace OpenWaves.EPiServer.Abstractions
{
    [DefaultImplementation(typeof(DataFactoryWrapper))]
    public interface IDataFactory
    {
        PageData GetPage(PageReference pageLink);
        PageData GetPage(PageReference pageLink, ILanguageSelector languageSelector);

        IEnumerable<PageData> GetChildren(PageReference pageLink, ILanguageSelector languageSelector);

        PageReference Save(PageData page, SaveAction action);
        PageReference Save(PageData page, SaveAction action, AccessLevel accessLevel);
    }
}